home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 44
/
Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso
/
-in_the_mag-
/
basics
/
amos
/
amosp61ext.lha
/
source
/
InitRou.lnk
< prev
Wrap
Text File
|
1997-04-24
|
2KB
|
65 lines
AddLabl L_Init
cmp.l #'APex',d1 ;Check for AMOS Pro
bne.s .error
move.l #O_SizeOf,d0 ;Get extension memory
move.l #$10001,d1 ;Cleared memory
move.l a6,d5 ;Save a6
move.l 4.w,a6
jsr _LVOAllocMem(a6)
move.l d5,a6 ;Restore a6
move.l d0,ExtAdr+ExtNb*16(a5) ;Move address to a
beq.s .error ;available place
move.l d0,a2
lea ResetToDefault(pc),a0 ;Insert 'Default' routine
move.l a0,ExtAdr+ExtNb*16+4(a5)
lea ExtQuit(pc),a0 ;Insert termination
move.l a0,ExtAdr+ExtNb*16+8(a5)
lea BkCheck(pc),a0 ;Insert bank check
move.l a0,ExtAdr+ExtNb*16+12(a5)
moveq.l #0,d1
Rbsr L_P61Func
; bsr ResetToDefault ;Default once.
move.w #$0110,d1 ;AMOS Pro version needed
moveq #ExtNb,d0 ;Extension number
rts
.error sub.l a0,a0 ;Error has occured.
moveq.l #-1,d0
rts
ResetToDefault ;Default Routine.
; movem.l a3-a6/d6-d7,-(sp)
Rbsr L_P61Stop ;e.g Protracker Stop
; movem.l (sp)+,a3-a6/d6-d7
rts
ExtQuit
movem.l a3-a6/d6-d7,-(sp)
bsr ResetToDefault ;Call the Default Routine
dload a2
move.l a6,d3
move.l 4.w,a6
move.l a2,a1 ;Free Extension memory.
move.l #O_SizeOf,d0
jsr _LVOFreeMem(a6)
move.l d3,a6
movem.l (sp)+,a3-a6/d6-d7
rts
BkCheck dload a2
tst.w O_MusicEnabled(a2)
beq.s .skip
move.l O_MusicBank(a2),d0
Rjsr L_Bnk.GetAdr
beq.s .ptstop
move.l O_MusicAddress(a2),d0
cmp.l a0,d0
beq.s .skip
.ptstop movem.l a3-a6/d6-d7,-(sp)
Rbsr L_P61Stop
movem.l (sp)+,a3-a6/d6-d7
.skip rts
AddLabl ;Empty label.